package com.factory.simplefactory;

import com.factory.AoDiCar;
import com.factory.BMWCar;
import com.factory.BenChiCar;
import com.factory.Car;

/**
 * 汽车工厂可以加工不同的汽车
 */
//对于这个工厂来说(太强大了)
//为什么？
//这个工厂啥都能干(不符合现实)
//编码也是一种艺术(融汇贯通),艺术来源于生活，回归到生活的
public class CarFactory {

    //实现统一管理、专业化管理
    //如果没有工厂模式，小作坊，没有执行标准的
    //如果买到三无产品（没有标准）
    //卫生监督局工作难度会大大减轻

    //中国制造(按人家的标准执行)
    //中国制造向中国创造改变(技术不是问题了，问题是什么？思维能力)
    //码农就是执行标准的人
    //系统架构师，就是制定标准的人

    //不只做一个技术者，更要做一个思考者
    public static Car creatCar(String carType){

        //创建过程以及创建逻辑
        if("aodi".equals(carType)){
            //Spring中的工厂模式
            //Bean
            //BeanFactory（生成Bean）
            //单例的Bean
            //被代理过的Bean
            //最原始的Bean（原型）
            //List类型的Bean
            //作用域不同的Bean

            //getBean
            //非常的紊乱，维护困难
            //解耦（松耦合开发）
            return new AoDiCar();
        }
        if("bmw".equals(carType)){
            return new BMWCar();
        }
        if("aodi".equals(carType)){
            return new BenChiCar();
        }
        return null;
    }
}
